#include <iostream>
#include "Scanner.h"
#include "Tokenizer.h"

void Tokenizer_Test01();
void Tokenizer_Test02();
void GetToken_Test01();
void GetToken_Test02();
void GetWord_Test01();
void GetWord_Test02();
void GetWord_Test03();
void GetNumber_Test01();
void GetNumber_Test02();
void GetNumber_Test03();
void GetString_Test01();
void GetString_Test02();
void GetSpecial_Test01();
void GetSpecial_Test02();
void isReservedWord_Test01();
void isReservedWord_Test02();

int main(int argc, const char * argv[])
{
    cout << "Running Test Cases" << endl;
    Tokenizer_Test01();
    Tokenizer_Test02();
    GetToken_Test01();
    GetToken_Test02();
    GetWord_Test01();
    GetWord_Test02();
    GetWord_Test03();
    GetNumber_Test01();
    GetNumber_Test02();
    GetNumber_Test03();
    GetString_Test01();
    GetString_Test02();
    GetSpecial_Test01();
    GetSpecial_Test02();
    isReservedWord_Test01();
    isReservedWord_Test02();
}
void Tokenizer_Test01(){
    Scanner scanner(argv[1]);
    Tokenizer tok(scanner);
    cout << "Running Tokenizer_Test01" << endl;
    cout << "Expected Output: " << "None"<< endl;
    cout << "Actual Output: " << "None"<< endl;
}
void Tokenizer_Test02(){
    Tokenizer tok(NULL);	
    cout << "Running Tokenizer_Test02" << endl;
}
void GetToken_Test01(){
    GetToken tok1(charTable[]);
    cout << "Running GetToken_Test01" << endl;
}
void GetToken_Test02(){
    GetToken tok1(NULL);
    cout << "Running GetToken_Test02" << endl;
}
void GetWord_Test01(){
    char chh = 't';
    GetWord tok2(chh, charTable[]);
    cout << "Running GetWord_Test01" << endl;
}
void GetWord_Test02(){
    char chh = '\0';
    GetWord tok2(chh, charTable[]);
    cout << "Running GetWord_Test02" << endl;
}
void GetWord_Test03(){
    char chh = 't';
    GetWord tok2(chh, NULL);
    cout << "Running GetWord_Test03" << endl;
}
void GetNumber_Test01(){
    char ch1 = '2';
    GetNumber tok3(ch1, charTable[]);
    cout << "Running GetNumber_Test01" << endl;
}
void GetNumber_Test02(){
    char ch1 = 'f';
    GetNumber tok3(ch1, charTable[]);
    cout << "Running GetNumber_Test02" << endl;
}
void GetNumber_Test03(){
    char ch1 = '2';
    GetNumber tok3(ch1, NULL);
    cout << "Running GetNumber_Test03" << endl;
}
void GetString_Test01(){
    char ch2 = 'w';
    GetString tok4(ch2);
    cout << "Running GetString_Test01" << endl;
}
void GetString_Test02(){
    char ch2 = '\';
    GetString tok4(ch2);
    cout << "Running GetString_Test02" << endl;
}
void GetSpecial_Test01(){
    char ch3 = '-';
    GetSpecial tok5(ch3);
    cout << "Running GetSpecial_Test01" << endl;
}
void GetSpecial_Test02(){
    char ch3 = NULL;
    GetSpecial tok5(ch3);
    cout << "Running GetSpecial_Test02" << endl;
}
void isReservedWord_Test01(){
    char chh = 't';
    GetWord tok2(chh, charTable[]);
    isReservedWord tok6(tok2);
    cout << "Running isReservedWord_Test01" << endl;
}
void isReservedWord_Test02(){
    isReservedWord tok6(NULL);
    cout << "Running isReservedWord_Test02" << endl;
}
